{{tag>media_center upnp tnt carte_tv}}
----

====== XBMC ======

{{  http://xbmc.org/wp-content/gallery/confluence/screenshot000.jpg?250}}

[[http://www.xbmc.org/|XBMC]] est un [[wpfr>Home_Theater_Personal_Computer|media center]] libre((Il est distribué sous licence GNU GPL, excepté pour quelques bibliothèques qui sont sous licence LGPL. Il est essentiellement écrit en C++ et utilise le framework multimédia SDL et l'OpenGL pour le rendu graphique sous Linux. Et est soutenu par la fondation XBMC)) développé à l'origine pour la Xbox. Il est depuis plusieurs années porté sous GNU/Linux, Windows et MacOS. Il est très complet, personnalisable avec de nombreux //skins// (thèmes d'apparence) et très abouti.

Cette application supporte entre autres :
  * **Une gestion de tous ses composants ( applications , stream tv, thèmes, etc ...) comme des dépôts ou des appstores : vous pouvez par exemple ajouter des thèmes directement à partir d'XBMC, selon vos dépôts; que vous pouvez également ajouter**.
  * Les skins dont certains sont des institutions : Aeon et ses [[http://marcosqui.com.br/skin_english.html|dérivés]]
  * Les [[webtv]] françaises et du monde entier, et les [[webtv#les_webtv_diffusees_par_les_fai|tv des box de votre fournisseur internet]]
  * Il existe des composants pour le web, pour "réseaux sociaux", navigateur internet, etc ...
  * Des add-ons pour des applications Ubuntu, et les jeux, et les émulateurs etc ...
  * L'[[UPNP]] (Une technologie permettant entre autres de fournir et d'acquérir des médias sur un réseau local) ;
  * Le « Remote management » ( et la [[domotique]] ), soit par Web interface, soit par diverses applications (comme sur l'iPhone), soit par télécommande ;
  * La réception de la Télévision/Radio Numérique grâce à une [[carte_TV|carte TV]]. Pour cela, pensez à installer la **version PVR**. 

XBMC utilise l'accélération graphique afin de fournir de jolis effets de transition et de meilleures performances.((supporte vdpau (Nvidia) et va-api (Intel, ATI) permettant de consommer moins de puissance CPU)) :)
De plus, XBMC peut également être exécuté comme **gestionnaire de Bureau** !

<note tip>Nouveauté d'XBMC : 
   * Gestion des plugins dans XBMC
   * Performances accrus pour les vidéos, et vidéos HD. ( [[http://www.pcinpact.com/actu/news/60948-xbmc-version-10-dharma-nouveautes-telechargement.htm|voir liste complète]] )
   * Intégration de [[projectm]] dans les visualisations.
</note>

===== Installation =====

Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>xbmc|xbmc]]**.


===== Installation via dépôt PPA =====
==== Pour Ubuntu 10.04 LTS ====

  * [[:PPA|Ajoutez le PPA]] **ppa:team-xbmc**((https://launchpad.net/~team-xbmc/+archive/ppa dépot alternatif : ppa:henningpingel/xbmc )) dans vos sources de logiciels ;
  * [[:tutoriel:comment_modifier_sources_maj#recharger_la_liste_des_paquets|Rechargez la liste des paquets]] ;
  * [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt://xbmc|xbmc]]**.

Ou en une ligne :
<code>
sudo add-apt-repository ppa:team-xbmc && sudo apt-get update && sudo apt-get -y install xbmc
</code>

==== Version PVR pour regarder la TV ====

Si vous possédez une [[carte_TV]] vous pouvez installer XBMC dans sa version PVR (Personal Video Recorder).
Nous utiliserons pour cela les dépôts mis à disposition par [[http://www.pulse-eight.com/Pulse-Eight]] :

télécharger le script :
<code>wget http://packages.pulse-eight.net/ubuntu/install-xbmc.sh</code>
mettre le script en exécutable :
<code>chmod +x install-xbmc.sh</code>
exécuter le script :
<code>./install-xbmc.sh</code>

Vous devrez alors installer et configurer [[MythTV]], [[TvHeadend]] ou [[VDR]] et activer l'add-on correspondant dans XBMC.
=====Utilisation=====
====Déplacement dans xbmc====
  * Utilisez les flèches de votre clavier et la touche entrée
  * Utilisez votre télécommande reconnue ( ou configurée ).

====Ajouter ses fichiers dans la bibliothèque multimédia====
  * Dans Video / Audio ou Image
  * Cliquez sur Ajouter -> Bouton Parcourir -> Sélectionner votre dossier 
  * Valider

====Ajouter des dépôts d'add-ons - ex : pour les TV françaises ====
Méthode automatique :
  * [[http://passion-xbmc.org/addons/?Page=View&ID=plugin.program.repo.installer|Télécharger et installer l'add-on Repositories Installer]] ( de la communauté Passion Xbmc, addon qui va récupérer les add-ons de site sur le wiki officiel )
  * Note : enregistrez-le dans un endroit où vous savez où se trouve le fichier.
  * Dans XBMC : allez dans Système -> Add-Ons -> Installer depuis un fichier Zip
    * Retrouver le fichier du dépôt, et installer.
  * Il n'y a plus qu'à utiliser l'addon

Méthode manuelle :
  * [[http://wiki.xbmc.org/index.php?title=Unofficial_Add-on_Repositories|Allez sur le site officiel]]
  * Trouver le dépôt qui vous intéresse, et enregistrer le fichier ( colonne "installable ZIP" ) : pour avoir les télévisions françaises, téléchargez le dépôt "[[http://passion-xbmc.org/addons/?Page=View&ID=repository.passion.xbmc.org|repository.passion.xbmc.org]]" de la communauté française '[[http://passion-xbmc.org/addons/|Passion XBMC]]'.
  * Note : enregistrez-le dans un endroit ou vous savez ou se trouve le fichier.
  * Dans XBMC : allez dans Système -> Add-Ons -> Installer depuis un fichier Zip
    * Retrouver le fichier du dépôt, et installer.

==== Ajouter un Add-On ( ou un thème )- ex : pour les TV françaises====
  * Pour ajouter un add-on vous pouvez soit le faire à partir de chaque catégorie existante ( images, musiques, video,... ) , sous Add-ons en cliquant sur plus.
  * Ou vous pouvez aller dans Système -> Add-Ons -> "Télécharger des Add-Ons" ( niveau le plus haut de l'arborescence )
    * Vous sélectionnez soit " tous les add-ons " pour avoir les add-ons de tous les dépôts classés
    * Ou vous sélectionnez le dépôt désiré : ICI: "[[http://passion-xbmc.org/addons|PASSION-XBMC.org Add-ons]]"
  * Par exemple : pour avoir les chaînes de votre fournisseur d'accès ( free , ... ) :
    * Allez dans **Video -> "Tv Plugin" -> Installer**.

Comme vous le voyez, il y a des centaines d'add-ons à votre disposition, et cela ira en s'améliorant. Bonne découverte.

==== Lire un DVD ====

XBMC fait apparaître automatiquement le menu //lire un disque// à côté du menu //Programme// lorsqu'il détecte un DVD dans le lecteur. Si ça ne marche pas, vérifier les points suivants :
  * le lecteur DVD doit être présent lors du lancement de XMBC (si vous avez un lecteur externe, redémarrez XBMC si ça n'a pas été le cas)
  * le lecteur DVD doit être reconnu sous /dev/dvd. Si ce n'est pas le cas parce que vous avez plusieurs lecteurs, changez de lecteur et/ou éditez le fichier /etc/udev/rules.d/70-persistent-cd.rules pour changer le chemin.

<note tip>Il est possible de relancer XMBC automatiquement lors du branchement du lecteur DVD externe, afin de contourner la premier point :
  * éditez le fichier /etc/udev/rules.d/70-persistent-cd.rules
    * à la ligne contenant //SYMLINK+="dvd"//, ajoutez la fin de ligne suivante qui relance XMBC : //, RUN+="/usr/bin/pkill -9 xbmc.bin"//
    * enregistrez le fichier
  * redémarrer le service [[udev]] : <code>sudo restart udev</code>
</note>

=====Configuration=====
====Paramètre de langue====
  * Dans xbmc
  * System -> Appearance -> International -> Language

====Sélectionner un thème====
  * Si vous avez installé un autre thème que celui par défaut,
  * Vous pouvez l'activer, en allant dans Système -> Apparence -> et à Thème choisir un autre Thème.

====Transformer XBMC en console de jeu====
<note help>
{{http://cache.gawkerassets.com/assets/images/17/2010/04/500x_screenshot.3.jpg?150 }}
   * (en) [[http://lifehacker.com/5523672/turn-your-xbmc-media-center-into-a-video-game-console?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+lifehacker%2Ffull+%28Lifehacker%29|Turn Your XBMC Media Center into a Video Game Console]]
   * [[http://forum.xbmc.org/showthread.php?t=35739&highlight=launcher|Forum xbmc]]
   * En développement : [[http://www.haxnetwork.net/2010/05/xbmc-running-on-ps3/|XBMC sur PS3]]
   * [[http://forum.xbmc.org/showthread.php?t=87758&highlight=game+console&nojs=1#goto_threadsearch|Emulatopia]]
   * [[http://forum.xbmc.org/showthread.php?t=70115&highlight=game+console|Rom Collection Browser - Browse and launch emulator game ROMs]]
   * [[http://forum.xbmc.org/showthread.php?t=85724&highlight=game+console|Thumbs up [RELEASE] Advanced Launcher - Application, Emulator and ROMs Launcher Addon for XBMC ]]
   * [[http://forum.xbmc.org/search.php?searchid=7268161|Xbmc game console]]
</note>

<note tip>**Avis de Projet : créer un plugin pour gérer les jeux dans les dépôts ( ubuntu, [[playdeb]], [[ubuntu games]], etc ...) : une sorte de "logithèque" et pourquoi pas un "game store".**

[[http://forum.ubuntu-fr.org/viewtopic.php?id=434659|Projet : Interface console de jeu "ubuntu/linux"]]

[[http://www.webupd8.org/2010/12/xbmc-100-dharma-released-with-built-in.html|Notez que la version 10 de XBMC supporte les greffons, et les gère facilement.]]
</note>

===Ajouter des jeux===
FIXME
===Ajouter des émulateurs console===
FIXME

==== Piloter XBMC avec une Wiimote ====
Pour utiliser une Wiimote avec XBMC, installez simplement les paquets  xbmc et xbmc-eventclients-wiiremote, disponibles dans les dépôts du projets : [[apt://xbmc-eventclients-wiiremote|cliquez ici]].

Puis lancer le tout avec un : <code>
xbmc-wiiremote & xbmc
</code>

Il ne vous reste plus qu'à associer la Wiimote en pressant 1 et 2.

=== Pour la version 64 bits ===
Il est possible que le contrôle par Wiimote ne fonctionne pas correctement (déconnexion intempestive, vitesse trop élevée, ...) si vous utilisez une version 64bits de Ubuntu. Dans ce scénario vous devrez vous passer de l'installation par package et donc commencer par désinstaller le paquet **xbmc-eventclients-wiiremote**.

Vous devez d'abord installer quelques dépendances :
<code>apt-get install libbluetooth-dev g++ libcwiid1 xbmc-eventclients-common</code>
<note>Le 10 avril 2012 : à cette date la version de libbluetooth utilisée par XBMC est la version 2 et non la version disponible dans les dépôts. En effet, le paquet libbluetooth est passé en version 3 dans les dépôts de Precise.</note>

Téléchargez ensuite les sources de xbmc et compilez le daemon :
<code>
mkdir /usr/local/src/xbmc
git clone git://github.com/xbmc/xbmc.git /usr/local/src/xbmc
cd /usr/local/src/xbmc/tools/EventClients/Clients/WiiRemote
make
</code>
<note>
Après des heures de souffrance, il faut modifier le Makefile pour compiler le client :         $(CXX) $(CFLAGS) -I./wiiuse_$(VERSION)/src WiiUse_WiiRemote.cpp $(OBJS) -o $(BIN) **-l bluetooth**
</note>
Un binaire situé **/usr/local/src/xbmc/tools/EventClients/Clients/WiiRemote/WiiUse_WiiRemote** écoutera maintenant avec succès votre WiiMote.
<note>Pour fonctionner, vous devez impérativement lancer le binaire depuis son dossier</note>

Si vous êtes intéressé par la démonification du processus, voici le script à placer dans //init.d// (**pour utilisateur averti, une configuration préalable de ce fichier est à réaliser**) :
<code>
#! /bin/sh

### BEGIN INIT INFO
# Provides:          wiimote
# Required-Start:    $local_fs $syslog $remote_fs bluetooth udev
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Wminput for wiimote initscript
# Description:       Wiimote for wiimote initscript : should be placed in /etc/init.d.
### END INIT INFO

# Author: LvR

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DIR=/usr/local/src/xbmc/tools/EventClients/Clients/WiiRemote
DESC="xbmc-wiiremote initscript"
NAME=xbmc-wiiremote
USER=xbmc
DAEMON=WiiUse_WiiRemote
PIDFILE=/home/$USER/.$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
# [ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
        # Be sure that uinput module is loaded
        modprobe uinput
        
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
	start-stop-daemon --start \
		--quiet --background \
		--make-pidfile --pidfile $PIDFILE \
		--chuid $USER \
		--chdir $DIR \
		--exec $DIR/$DAEMON --test > /dev/null \
		|| return 1
        start-stop-daemon --start \
		--quiet --background \
		--make-pidfile --pidfile $PIDFILE \
		--chuid $USER \
		--chdir $DIR \
		--exec $DIR/$DAEMON -- \
                $DAEMON_ARGS \
                || return 2
       # Add code here, if necessary, that waits for the process to be ready
        # to handle requests from services started subsequently which depend
        # on this one.  As a last resort, sleep for some time.
}

#
# Function that stops the daemon/service
#
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/2/KILL/1 --pidfile $PIDFILE
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        # Wait for children to finish too if this is a daemon that forks
        # and if the daemon is only ever run from this initscript.
        # If the above conditions are not satisfied then add some other code
        # that waits for the process to drop all resources that could be
        # needed by services started subsequently.  A last resort is to
        # sleep for some time.
        start-stop-daemon --stop --quiet --oknodo --retry=0/2/KILL/1 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        # Many daemons don't delete their pidfiles when they exit.
        rm -f $PIDFILE
        return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
        #
        # If the daemon can reload its configuration without
        # restarting (for example, when it is sent a SIGHUP),
        # then implement that here.
        #
        start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
        return 0
}

case "$1" in
  start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  #reload|force-reload)
        #
        # If do_reload() is not implemented then leave this commented out
        # and leave 'force-reload' as an alias for 'restart'.
        #
        #log_daemon_msg "Reloading $DESC" "$NAME"
        #do_reload
        #log_end_msg $?
        #;;
  restart|force-reload)
        #
        # If the "reload" option is implemented then remove the
        # 'force-reload' alias
        #
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 3
        ;;
esac

exit 0

</code>
==== Piloter XBMC avec un Android phone ====

Il existe plusieurs applications pour piloter XBMC depuis Android.

//Official xbmc Remote// est l'application officielle de la Team XBMC (gratuite et sous licence GPLv2) disponible sur l'Android Market :

  * [[http://code.google.com/p/android-xbmcremote/|Site du projet]]

**Remarque**: pour que votre téléphone Android fonctionne pleinement en tant que télécommande d'XBMC, n'oubliez pas d'autoriser les ports TCP (9777) et UDP (8080 par défaut ou la valeur que vous aurez choisie et entrée dans la configuration de XBMC) au niveau de votre firewall. Pour plus d'info sur la configuration du firewall par défaut d'Ubuntu: [[ufw|ufw]]

  * QRcode (FIXME semble ne plus fonctionner) :
{{:linphone:android-xbmcremote_QRcode_072010.png}}

//YATSE// est une application développée par un membre de la communauté [[http://passion-xbmc.org/pilotage-telecommande/yatse-widget-now-playing-widget-pour-android-2-2-et-eden/|Française Passion-XBMC.org]]

  * [[https://play.google.com/store/apps/details?id=org.leetzone.android.yatsewidgetfree|Yatse sur le market]]
==== Piloter XBMC avec un iPhone ====

Il vous faut avoir un Wi-Fi et acheter **XBMC remote** sur l'App store (gratuite).

**Note : il existe d'autres logiciels pour iPhone, dont certains gratuits.**

== Configurer xbmc ==

Ouvrez XBMC et allez dans system > network, et là cochez les cases suivantes :

allow control XBMC via HTTP

allow programs on this system to controle XBMC

allow programs on others systems to controle XBMC

Remarquez que vous pouvez choisir le port et protéger par un mot de passe.

Une fois ceci fait il vous faut l'adresse IP du PC où se trouve XBMC. Pour cela, tapez dans une console :
<code>ifconfig</code>

ce qui va vous donner ceci ou quelque chose qui y ressemble :
<code>
eth0      Link encap:Ethernet  HWaddr 00:1c:c0:94:48:66  
          inet adr:192.168.1.38  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fe80::21c:c0ff:fe94:4866/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:77951 erreurs:2603 :0 overruns:0 frame:1661
          TX packets:64311 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:100 
          Octets reçus:94606676 (94.6 MB) Octets transmis:6461362 (6.4 MB)
          Mémoire:d3300000-d3320000 

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          Packets reçus:116 erreurs:0 :0 overruns:0 frame:0
          TX packets:116 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          Octets reçus:28962 (28.9 KB) Octets transmis:28962 (28.9 KB)
</code>
(eth c'est en général la connexion de la carte réseau et wlan le Wi-Fi)
Là localisez l'IP (dans mon cas c'est 192.168.1.38 )

voilà c'est tout pour le PC maintenant passons à l'iPhone

== Configurer l'iPhone ==

Il faut activer le Wi-Fi sur votre iPhone et ouvrir le programme XBMC. Une fois le programme ouvert, allez dans //settings -> discover hosts -> manually add host//.

Puis vous devez fournir plusieurs informations. Laissez tout par défaut (comme mentionné plus haut, on peut rajouter un mot de passe de protection par exemple). Dans le champ IP mettez l'IP du PC sur lequel XBMC est installé (dans mon cas 192.168.1.38). Une fois ceci fait, normalement si XBMC est ouvert sur votre PC, la connexion devrait être reconnue et fonctionnelle. Voilà maintenant vous pouvez piloter XBMC via votre iPhone. (Sinon, vérifiez bien que vous avez entré les bonnes informations : la bonne adresse IP, etc) En outre, il est recommandé de protéger avec un mot de passe.

===== Voir aussi =====

  * [[:xbmc_avec_evrouter|Un tutoriel]] pour utiliser un périphérique HID (tel qu'une télécommande) avec XBMC
  * **(en)** [[http://xbmc.org/|Le site du projet]], où vous trouverez un forum, un wiki, et des nouvelles
  * **(fr)** [[http://passion-xbmc.org/|Xbmc Passion]], un site avec une communauté française sympathique et active
  * **(fr)** [[http://www.xbmc.fr|XBMC Media Center]], pour consulter l'actualité de XBMC ainsi que la traduction du manuel anglais

----
//Contributeurs : [[:contributeurs|Les contributeurs d'Ubuntu-fr]].//